import 'package:flutter/material.dart';
import 'package:casdon/app/config/theme/color_theme.dart';

// 为 BuildContext 创建一个扩展
extension ThemeContextExtension on BuildContext {

  /// 获取当前主题的 ThemeData 对象
  /// 用法: context.theme
  ThemeData get theme => Theme.of(this);

  /// 获取当前主题的颜色方案 (ColorScheme)
  /// 用法: context.colorScheme
  ColorScheme get colorScheme => Theme.of(this).colorScheme;

  /// 获取当前主题的文本主题 (TextTheme)
  /// 用法: context.textTheme
  TextTheme get textTheme => Theme.of(this).textTheme;

  /// 获取你的自定义颜色主题扩展
  /// 用法: context.customColors
  /// 注意：返回的是可空的，因为扩展可能未在主题中定义
  CDColorTheme? get customColorTheme => Theme.of(this).extension<CDColorTheme>();
  
  /// (可选) 如果你确定 CustomColors 总是存在，可以提供一个非空的 getter
  /// 用法: context.customColorsNonNull
  /// 警告：如果扩展不存在，这会抛出异常
  CDColorTheme get customColorThemeNonNull => Theme.of(this).extension<CDColorTheme>()!;
}